﻿using System;
using System.Windows;
using Microsoft.Phone.Controls;
using System.Windows.Threading;
using Microsoft.Phone.Tasks;

namespace Win7RovMobileApp
{
    public partial class MainPage : PhoneApplicationPage
    {
        private GaugeAnimation gameAnim;

        // Constructor
        public MainPage()
        {
            InitializeComponent();
            CompleteInfoText();
            SetGaugeAnimation();
        }


        private void CompleteInfoText()
        {
            AplicareRovigTextBlock.Text = "- Pentru circulatia pe reteaua de drumuri nationale, exclusiv cele aflate in intravilanul resedintelor de judete si al municipiilor;\n" +
                                          "- Pentru toate categoriile de vehicule inmatriculate in Romania si in alte state, nediscriminatoriu;\n" +
                                          "- Pentru persoanele fizice si juridice;\n" +
                                          "- vehicul = orice autovehicul rutier inmatriculat, avand cel putin doua axe, sau un ansamblu format dintr-un autovehicul si semiremorca ori remorcile tractate de acesta;\n" +
                                          "- utilizator = persoana fizica sau juridica care detine vehicule inmatriculate in Romania (utilizatori romani) sau care detine vehicule inmatriculate in alte state (utilizatori straini);\n" +
                                          "- Vehiculele de transport mixt se incadreaza in categoria vehiculelor de transport marfa.";

            CategoriiRovigTextBlock.Text = "* Categoria A: Autoturisme; \n" +
                                          "* Categoria B: Vehicule de transport marfa cu 0,0 t mai mic decat MTMA mai mic sau egal cu 3,5 t;\n" +
                                          "* Categoria C:\n" +
                                          "  a) Vehicule de transport marfa cu 3,5 t mai mic decat MTMA mai mic sau egal cu 7,5 t;\n" +
                                          "  b) Vehicule de transport persoane cu mai mult de 9 locuri pe scaune (inclusiv conducatorul auto) si maximum 23 de locuri pe scaune (inclusiv conducatorul auto);\n" +
                                          "* Categoria D:\n" +
                                          "  a) Vehicule de transport marfa cu 7,5 t mai mic decat MTMA mai mic decat 12,0 t;\n" +
                                          "  b) Vehicule de transport persoane cu mai mult de 23 de locuri pe scaune (inclusiv conducatorul auto);\n" +
                                          "* Categoria E: Vehicule de transport marfa cu MTMA mai mare sau egal cu 12,0t, cu maximum 3 axe (inclusiv);\n" +
                                          "* Categoria F: Vehicule de transport marfa cu MTMA mai mare sau egal cu 12,0t, cu minimum 4 axe (inclusiv).";
            
            TermeniTextBlock.Text =       "    Toate comenzile efectuate prin intermediul acestei aplicatii se supun contractului oficial legal de distribuire de roviniete" +
                                          "pe care Alex&Nega S.R.L. il detine. Efectuarea oricarui tip de comanda implica acordul implicit si explicit al utilizatorului" +
                                          "cu termenii contractului de distributie si se certifica prin semnatura electronica (conform prevederilor Legii nr. 455/2001)." +
                                          "Se accepta si cumparatori din alte tari si/sau livrarea catre alte tari.\n" +
                                          "\n" +
                                          "ATENTIE!\n"+
	                                      "    Conform Legii comertului electronic (Legea 365/2002 cu modificarile aduse prin legea 121/2006)\n" +
                                          "Art. 7: Validitatea, efectele juridice si proba contractelor încheiate prin mijloace electronice\n" +
                                          " (1) Contractele încheiate prin mijloace electronice produc toate efectele pe care legea le recunoaste contractelor," +
                                          "atunci când sunt întrunite conditiile cerute de lege pentru validitatea acestora.\n" +
                                          " (2) Pentru validitatea contractelor încheiate prin mijloace electronice nu este necesar consimtãmântul prealabil al pãrtilor" +
                                          "asupra utilizãrii mijloacelor electronice.\n" +
                                          " (3) Proba încheierii contractelor prin mijloace electronice si a obligatiilor care rezultã din aceste contracte este supusã dispozitiilor" +
                                          "dreptului comun în materie de probã si prevederilor Legii nr. 455/2001 privind semnãtura electronicã." +
	                                      "Prin exceptia aratata de Ordonanta nr. 130/2000 privind regimul juridic al contractelor la distanta (Aprobata cu modificari prin Legea 51/2003)" +
                                          "rovinietele (taxele de utilizare a infrastructurii rutiere din Romania) NU pot fi returnate si nu sunt necesare prevederile speciale privind garantia" +
                                          "si service-ul aplicat asupra produsului/serviciului:\n" +
                                          "Art. 6. - Dispozitiile prezentei ordonante nu se aplica:\n" +
                                          "...\n" +
                                          " f) in cazul comertului electronic.\n" +
                                          "Art. 10. - Consumatorul nu poate denunta unilateral urmatoarele tipuri de contracte, cu exceptia cazurilor in care partile au convenit altfel:" +
                                          "...\n" +
                                          " c) contracte de furnizare a unor produse executate dupa specificatiile consumatorului sau a unor produse distinct personalizate, precum si a acelora care," +
                                          "prin natura lor, nu pot fi returnate sau care se pot degrada ori deteriora rapid;\n" +
                                          "...\n" +
                                          "\n" +
	                                      "    Informatiile furnizate de catre Utilizatori vor fi stocate de catre Alex&Nega SRL in format electronic si nu vor fi furnizate catre nici o alta terta parte," +
                                          "decat cele implicate in mod direct de furnizarea serviciilor specifice acestei aplicatii." +
	                                      "Mijloacele tehnice pe care furnizorul de servicii le pune la dispozitie destinatarului pentru identificarea si corectarea erorilor survenite cu ocazia introducerii" +
                                          "datelor sunt: email (win7rovignete@ gmail.com).\n" +
                                          "\n" +
	                                      "    Limba în care se poate încheia contractul este numai limba romana.\n" +
                                          "\n" +
                                          "    Contractele se supun reglementarilor emise de catre C.N.A.D.N.R. S.A. împreuna cu modificarile ulterioare.\n" +
                                          "    Termenii si conditiile de folosire se supun legislatiei române. În caz de litigiu, se va incerca mai întâi o rezolvare pe cale amiabila," +
                                          "in termen de 30 de zile lucratoare de la înregistrarea reclamatiei. În cazul în care nu se poate ajunge la o întelegere în termenul precizat anterior, va fi considerata competenta instanta judecatoreasca.";

            ConditiiTextBlock.Text =      "    Utilizatorul foloseste aceasta aplicatie pe riscul propriu, dezvoltatorii fiind liberi de orice raspundere pentru" +
                                          "eventualele daune directe sau indirecte cauzate de utilizarea aplicatiei." +
                                          "    Pentru comenzile achitate cu cardul bancar online, livrarea produselor se va face doar dupa confirmarea procesatorului" +
                                          "de plati online in legatura cu debitarea contului bancar al clientului.";
            
            SecuritateTextBlock.Text =    "    Conform cerintelor Legii nr. 677/2001 pentru protectia persoanelor cu privire la prelucrarea datelor cu caracter personal" +
                                          "si libera circulatie a acestor date, modificata si completata si ale Legii nr. 506/2004 privind prelucrarea datelor" +
                                          "cu caracter personal si protectia vietii private in sectorul comunicatiilor electronice avem obligatia de a administra" +
                                          "in conditii de siguranta si numai pentru scopurile specificate, datele personale pe care ni le furnizezi despre tine.\n" +
                                          "    Informatiile din formularul de comanda vor fi folosite pentru a-ti trimite confirmarea comenzilor, informatii despre promotii etc." +
                                          "Ne obligam sa nu facem publice si sa nu vindem bazele de date continand informatii referitoare la datele personale ale clientilor nostri." +
                                          "Conform Legii nr. 677/2001, beneficiezi de dreptul de acces, de interventie asupra datelor, dreptul de a nu fi supus unei decizii individuale" +
                                          "si dreptul de a te adresa justitiei. Totodata, ai dreptul sa te opui prelucrarii datelor personale care te privesc si sa soliciti stergerea datelor." +
                                          "Pentru exercitarea acestor drepturi, te poti adresa cu o cerere scrisa, datata si semnata catre win7rovignete@ gmail.com";
        }


        private void SetGaugeAnimation()
        {
            gameAnim = new GaugeAnimation(0);
            appGauge.DataContext = gameAnim;    //bind the "score" from the GaugeAnimation class with the "score" from the Gauge located on the interfaces

            // start a separate thread for the gauge animation
            // UI thread must be idle all the time if possible
            DispatcherTimer timer = new DispatcherTimer();;
            timer.Interval = TimeSpan.FromMilliseconds(2500);
            timer.Tick += new EventHandler(RunGaugeAnimation);
            timer.Start();
        }


        //this method will be called when timer's interval elapses
        void RunGaugeAnimation(object sender, EventArgs e)
        {
            //update random scores
            Random rand = new Random();
            gameAnim.Score = rand.Next((int)appGauge.MinValue, (int)appGauge.MaxValue);
        }


        //go to VEHICLE window
        private void BuyNewRovButton_Click(object sender, RoutedEventArgs e)
        {
            NavigationService.Navigate(new Uri("/Menus/VehiclesMenu.xaml", UriKind.Relative));
        }


        //go to INFORM window
        private void ShowOldRovButton_Click(object sender, RoutedEventArgs e)
        {
            NavigationService.Navigate(new Uri("/Menus/CheckingMenu.xaml", UriKind.Relative));
        }


        //send mail from CONTACT window
        private void SendMessageButton_Click(object sender, RoutedEventArgs e)
        {
            if ((NumeTextBox.Text.Trim() == String.Empty)
                || (PrenumeTextBox.Text.Trim() == String.Empty)
                || (TelefonTextBox.Text.Trim() == String.Empty)
                || (EmailTextBox.Text.Trim() == String.Empty)
                || (MesajTextBox.Text.Trim() == String.Empty))
            {
                MessageBox.Show("Va rugam frumos sa completati toate campurile!");
                return;
            }

            EmailComposeTask emailcomposer = new EmailComposeTask(); 
            emailcomposer.To = "Ice_man8B@yahoo.com"; 
            emailcomposer.Subject = "Feedback from Rovigneta Mobile application"; 
            emailcomposer.Body = MesajTextBox.Text.Trim(); 
            emailcomposer.Show(); 
        }
    }
}